rest <- na.omit(rest)
zip_vio <- rest %>% group_by(ZIPCODE) %>%
summarize(Freq = n()) %>%
ungroup()
zip_vio <- as.data.frame(zip_vio)
avg_price <- final %>% group_by(ZIPCODE) %>%
summarize(avg_price = mean(price,na.rm = TRUE)) %>%
ungroup()
avg_price <- as.data.frame(avg_price)
shp_joined <- sp::merge(shp_joined, zip_vio, by="ZIPCODE", all=F)
shp_joined <- sp::merge(shp_joined, avg_price, by="ZIPCODE", all=F)
zip_popup <- paste0("<strong>Zip code </strong>",
shp_joined$ZIPCODE,
"<br><strong>Score </strong>",
floor(shp_joined$score),
"<br><strong>Location </strong>",
shp_joined$PO_NAME)
zip_popup_1 <- paste0("<strong>Zip code </strong>",
shp_joined$ZIPCODE,
"<br><strong>Number of violations </strong>",
shp_joined$Freq,
"<br><strong>Location </strong>",
shp_joined$PO_NAME)
zip_popup_2 <- paste0("<strong>Zip code </strong>",
shp_joined$ZIPCODE,
"<br><strong>Average price level (/4) </strong>",
round(shp_joined$avg_price, digits=2),
"<br><strong>Location </strong>",
shp_joined$PO_NAME)
leaflet(data = shp_joined) %>%
addProviderTiles("CartoDB.Positron") %>%
setView(-74, 40.7, 10) %>%
addPolygons(fillColor = ~pal(score),
fillOpacity = 0.8,
color = "#BDBDC3",
group="Score",
weight = 1,
popup = zip_popup) %>%
addPolygons(fillColor = ~pal1(Freq),
fillOpacity = 0.8,
color = "Red",
group="Number of violations",
weight = 1,
popup = zip_popup_1) %>%
addPolygons(fillColor = ~pal2(avg_price),
fillOpacity = 0.8,
color = "Red",
group="Average price",
weight = 1,
popup = zip_popup_2) %>%
addLayersControl(
baseGroups =c("Score","Number of violations","Average price"),
options = layersControlOptions(collapsed=FALSE)
)